﻿// 10007  线段.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <algorithm>


using namespace std;
/*
https://loj.ac/p/10007

题目描述
数轴上有 n 条线段，选取其中 k 条线段使得这 k 条线段两两没有重合部分，问 k 最大为多少。

输入格式
第一行为一个正整数 n；

在接下来的 n 行中，每行有 2 个数 a_i, b_i，描述每条线段。

输出格式
输出一个整数，为 k 的最大值。

样例
3
0 2
2 4
1 3

2

数据范围与提示
对于 20\% 的数据，n <= 10；

对于 50\% 的数据，n <= 10^3；

对于 70\% 的数据，n <= 10^5；

对于 100\% 的数据，n <= 10^6, 0 <= a_i <  b_i <= 10^6。
*/

const int N = 1e6 + 10;
struct SEG {
    int l, r;
}seg[N];
int n;

bool cmp(const struct SEG& a, const struct SEG& b) {
    return a.r < b.r;
}

int main()
{
    cin >> n;
    for (int i = 0; i < n; i++) {
        int a, b; cin >> a >> b;
        seg[i] = { a,b };
    }
    sort(seg,seg+n,cmp);
    int curr = 0;
    int ans = 0;

    for (int i = 0; i < n; i++) {
        if (seg[i].l >= curr) {
            curr = seg[i].r; ans++;
        }
    }
    cout << ans << endl;

}

 